Generally, a uniform resource locator (URL) is an address for a resource on a network. For example, URLs are utilized by web browsers to locate resource on the Internet. A URL specifies the protocol to be used in accessing a particular resource, and the IP address or domain name where the resource is located.
In an exemplary implementation, a web service (e.g., mail application) is provided on a first network device. The means of navigation amongst various pieces of the web service (e.g., received massages, sent messages and the like) is provided by URLs. Accordingly, the first network device (e.g., server device) transmits content (e.g., response) across a communication channel to a second network device (e.g., client device) according to a specified URL. The first network device also receives content (e.g., request) across the communication channel from the second network device. In one implementation the content is encoded in an HTTP command that includes one or more URLs (e.g., links).
A URL is composed of a pathname and one or more query string parameters. In the case of an application, the application may be implemented as a hierarchy of Java Server Pages (JSP), servelets, applets, common gateway interfaces, HyperText Markup Language (HTML) pages or the like. The JSPs, servelets, applets, common gateway interfaces, HTML pages or the like of the application can be organizes as a hierarchy. The hierarchy can have arbitrary depth and is organized to reflect device classes of ever increasing specificity. The deeper one goes in the hierarchy the more specific the JSP, servelet, applet, common gateway interface, HTML page or the like is to a particular device, class of devices, type of application or the like. Accordingly, the URLs of a given response can grow in size and number. Depending upon how specific the link becomes, the path and/or query string parameters can become very long. Thus, for any given response from a web application, the URLs can become a significant fraction of the total response.